/**
 * ProductionBuildingSequenceDecorator class definition
 */

#ifndef BuildUnitsSequenceDecorator_H_
#define BuildUnitsSequenceDecorator_H_

#include "BehaviorDecorator.h"
#include "BlackBoard.h"


class BuildUnitsSequenceDecorator : public BehaviorDecorator 
{
public:
	/**
	 * Creates a new instance of the ResetDecorator class
	 * @param incBehavior BaseBehavior* to decorate
	 */
	BuildUnitsSequenceDecorator(BaseBehavior* incBehavior) : BehaviorDecorator(incBehavior) {}

	/**
	 * Check the decorated task's check condition + extra.
	 */
	bool CheckConditions()
	{
		bool checkOne =  behavior->CheckConditions();
		return checkOne && (BWAPI::Broodwar->self()->supplyUsed()/(60*2) < BB->GetBases()->size() || BWAPI::Broodwar->self()->cumulativeMinerals() < ( 2000 * BB->GetBases()->size()));
	}

private:

};

#endif
